const TimeUtil = {
  // 当前时间 yyyy-MM-dd hh:mm:ss（保持原输出格式，不影响存储和展示）
  now() {
    let date = new Date()
    return `${date.getFullYear()}-${this.pad(date.getMonth() + 1)}-${this.pad(date.getDate())} ${this.pad(date.getHours())}:${this.pad(date.getMinutes())}:${this.pad(date.getSeconds())}`
  },

  // 将字符串格式的时间转换成 yyyy-MM-dd hh:mm:ss（兼容 iOS 解析）
  transferTime(time) {
    const compatibleTime = this.getCompatibleTimeStr(time) // 先转换为兼容格式
    let date = new Date(compatibleTime)
    return `${date.getFullYear()}-${this.pad(date.getMonth() + 1)}-${this.pad(date.getDate())} ${this.pad(date.getHours())}:${this.pad(date.getMinutes())}:${this.pad(date.getSeconds())}`
  },

  // 补位：确保数字为两位数（如 9 → 09）
  pad(num) {
    return num.toString().padStart(2, '0')
  },

  // 【新增】日期格式兼容处理：将 yyyy-MM-dd HH:mm:ss 转为 yyyy/MM/dd HH:mm:ss（适配 iOS）
  getCompatibleTimeStr(time) {
    if (!time) return ''
    // 替换所有 "-" 为 "/"，处理 "yyyy-MM-dd HH:mm:ss" 格式
    return time.replace(/-/g, '/')
  },

  // 聊天页面获取聊天消息的时间（修复 iOS 解析问题）
  getChatTime(time) {
    const compatibleTime = this.getCompatibleTimeStr(time) // 转换为兼容格式
    let dateTime = new Date(compatibleTime) // 此时 iOS 可正常解析
    let now = new Date()

    // 当前时间分量
    let now_year = now.getFullYear()
    let now_month = now.getMonth()
    let now_day = now.getDate()

    // 聊天时间分量（解析后正常获取）
    let chat_year = dateTime.getFullYear()
    let chat_month = dateTime.getMonth()
    let chat_day = dateTime.getDate()
    let chat_hours = dateTime.getHours()
    let chat_minutes = dateTime.getMinutes()

    // 时间逻辑判断（保持不变）
    if (now_year === chat_year && now_month === chat_month && now_day === chat_day) {
      return `${this.pad(chat_hours)}:${this.pad(chat_minutes)}`
    } else if (now_year === chat_year && now_month === chat_month && now_day - chat_day === 1) {
      return `昨天 ${this.pad(chat_hours)}:${this.pad(chat_minutes)}`
    } else if (now_year === chat_year) {
      return `${this.pad(chat_month + 1)}-${this.pad(chat_day)}` // 注意：month 是 0 开始，需 +1
    } else {
      // 非同年时，返回原格式（如 2024-10-11），不影响展示
      return time.split(' ')[0]
    }
  },

  // 消息列表页获取每个聊天的最后聊天时间（修复 iOS 解析问题）
  getMessageListItemTile(chat) {
    let time = chat.lastTime
    if (!time) return ''

    const compatibleTime = this.getCompatibleTimeStr(time) // 转换为兼容格式
    let lastTime = new Date(compatibleTime) // iOS 可正常解析
    let now = new Date()

    // 当前时间分量
    let now_year = now.getFullYear()
    let now_month = now.getMonth()
    let now_day = now.getDate()

    // 最后聊天时间分量（解析后正常获取）
    let last_year = lastTime.getFullYear()
    let last_month = lastTime.getMonth()
    let last_day = lastTime.getDate()

    // 时间逻辑判断（保持不变）
    if (now_year === last_year && now_month === last_month && now_day === last_day) {
      return time.substring(time.indexOf(" "), time.lastIndexOf(":"))
    } else if (now_year === last_year && now_month === last_month && now_day - last_day === 1) {
      return "昨天"
    } else if (now_year === last_year) {
      return time.substring(time.indexOf("-") + 1, time.indexOf(" "))
    } else {
      return time.substring(0, time.indexOf(" "))
    }
  }
}

export default TimeUtil